﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace PHMEE.Admin
{
    public interface IThresholdAppService : IApplicationService
    {
        /// <summary>
        /// 获取模拟生成guid
        /// </summary>
        /// <returns></returns>
        List<string> GetGuids();
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<PagedResultDto<ThresholdDto>> GetListAsync(PagedAndSortedResultRequestDto input);
        /// <summary>
        /// 获取采集定义类型
        /// </summary>
        /// <returns></returns>
        Task<ListResultDto<CategoryLookupDto>> GetCategoriesAsync();
        /// <summary>
        /// 根据id查询采集定义类型
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        Task<CategoryLookupDto> GetCategorieByIdAsync(Guid guid);
        /// <summary>
        /// 查询所有阈值
        /// </summary>
        /// <returns></returns>
        Task<List<ThresholdDto>> GetAllThresholdsAsync(Guid guid);
        /// <summary>
        /// 查询所有启用的阈值
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        Task<List<ThresholdDto>> GetThresholdsIsTrueAsync(Guid guid);
        /// <summary>
        /// 创建单条阈值
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task CreateAsync(CreateThresholdDto input);
        /// <summary>
        /// 获取模拟的测点id集合
        /// </summary>
        /// <returns></returns>
        List<TestPointDto> GetPointIds();
        /// <summary>
        /// 创建多条阈值
        /// </summary>
        /// <param name="inputs"></param>
        /// <returns></returns>
        Task<int> CreateMultipleAsync(List<CreateThresholdDto> inputs);
    }
}
